1. Technical Field
The technical field relates generally to systems and methods for controlling device operation and, more particularly, to systems and methods for controlling execution of monitoring device operations within a resource-constrained computing environment.
2. Background Discussion
Monitoring and control systems are often engineered to tight technological and budgetary tolerances. For this reason, these systems typically have limited memory and processing capabilities. These constrained computing resources result in a number of implementation challenges. Often within these systems, data is collected and processed during interrupt processing on devices and is subject to very rapid change. In many cases, the timeliness of these changes is critical, and the duration of significant changes may be very short (milliseconds are not uncommon). As a result, a number of serious design problems emerge in such systems when collecting data, processing data and controlling device operations.
For example, constrained computing devices may have difficulty quickly and efficiently reporting new sensor readings to collection systems while executing control functions over monitored equipment. In addition, constrained computing devices may miss short-term (millisecond range) updates, which may be significant, and therefore fail to report value updates across a network. Furthermore, constrained computing devices may be unable to execute relatively slow running code, such as notification routines for sending data through e-mail or performance of interactive control operations. This is so because the constrained computing device may be unable to render a stable view of highly dynamic data, so that a set of related values can be reported or processed in a consistent state (“temporal integrity”). Also, constrained computing devices may have difficulty delivering multiple data values consistently to collection systems, so that processing code does not observe temporary data inconsistencies (“transactional integrity”).
Many constrained computing devices write and rewrite single data structures, typically with some sort of semaphore or other mutual exclusion mechanism, and rely on frequent polling by data monitoring applications to observe problems or report changes. Other systems work on a process-on-update model, where the act of updating the data also includes immediately calling the necessary processing code, so that the data update is handled. However, this processing model limits how much processing can be done before another data update can be reported and handled.
Unfortunately, conventional data processing solutions, such as large scale database systems, are not suitable for limited resource monitoring and control systems for a number of reasons. First, they typically require large database applications, along with large amounts of file system based storage. Secondly, their client interfaces are exclusively user-mode as opposed to being useable by interrupt mode or kernel mode processing. Lastly, large scale database systems lack the real-time to near real-time responsiveness needed by monitoring and control systems for data update, data access and device control.
U.S. Pat. No. 7,542,963 discloses a sensor monitoring system that makes use of an in memory data journal for the purposes of collecting and processing sensor and configuration data changes within a constrained computing device. The implementation of the data journal enables the constrained computing device to efficiently operate as a data monitoring system that collects data from external devices via a network or hardware bus. It is with the data journal that large quantities of data updates can be processed without being missed by slow running components of the system. Collections of related updates can be processed without loss to either their temporal or transactional integrity.